package com.yfqy.app.domain.entity;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
    * 订单退款记录表
    */
@Data
public class OrderRefund {
    /**
    * 退款记录ID
    */
    private Long id;

    private Long userId;

    /**
    * 订单ID
    */
    private Long orderId;

    /**
    * 订单商品ID(为空表示整单退款)
    */
    private String orderItemId;

    /**
    * 订单编号
    */
    private String orderNo;

    /**
    * 退款单号
    */
    private String refundNo;

    /**
    * 退款类型(1-整单退款；2-部分退款)
    */
    private Byte refundType;

    /**
    * 退款原因
     * @see com.yfqy.app.enums.RefundReason
    */
    private Byte refundReason;

    /**
    * 退款说明
    */
    private String refundDesc;

    /**
    * 实际退款金额
    */
    private BigDecimal refundAmount;
    /**
    * 申请退款金额
    */
    private BigDecimal applyRefundAmount;

    /**
    * 退款状态(0-申请中；1-退款成功；2-退款失败；3-退款中；4-已取消, 5-已拒绝)
    */
    private Byte refundStatus;

    /**
    * 原支付方式(1支付宝 2微信)
    */
    private Byte paymentType;

    /**
    * 第三方退款单号
    */
    private String thirdPartyRefundNo;

    /**
    * 原第三方交易号
    */
    private String thirdPartyTradeNo;

    /**
    * 申请时间
    */
    private Date applyTime;

    /**
    * 处理时间
    */
    private Date processTime;

    /**
    * 退款成功时间
    */
    private Date successTime;

    /**
    * 回调通知时间
    */
    private Date notifyTime;

    /**
    * 回调通知数据
    */
    private String notifyData;

    /**
    * 错误码
    */
    private String errorCode;

    /**
    * 错误信息
    */
    private String errorMsg;

    /**
    * 操作人ID
    */
    private Long operatorId;

    /**
    * 操作人姓名
    */
    private String operatorName;

    /**
     * 拒绝原因
     */
    private String refuseReason;

    /**
    * 备注
    */
    private String remark;

    private String images;

    private Date createdTime;

    private Date modifiedTime;
}